You are here: Statements and Functions > Match
Syntax samples
MATCH <attribute>
MATCH Attr1
Causes the current entity to wait until the value of the specified attribute matches the value of another entity’s same attribute. Both entities must have a corresponding MATCH statement specified for the same attribute name. The two entities may be at any location in the model, including the same location and two completely unrelated locations. Therefore, the value of the attribute to MATCH should almost always be assigned to the value of a global variable incremented for each entity that will be matched, as in the following example.
Locations using the MATCH statement usually should be multi-capacity because otherwise they would not be able to process any other entities until the MATCH was made. Additionally, locations using MATCH usually should be non-queuing to allow the entities to move out of sequence when the MATCH is fulfilled.
Use the MATCH statement to pair two specific parts before assembling them, or to match a work order to a completed job.
The operation column of process edit tables only.
Components
<attribute>
Any attribute associated with the processing entity.
Example
You can use a MATCH to recombine the parts of an entity which has been split using multiple routing blocks. In the example below, every time an EntAB arrives at the location, the variable Count increments. ProModel assigns Attr1 for EntAB the value of count, which ensures that each EntAB will have a unique value for Attr1. Additionally, when each EntAB is split into EntA and EntB, both of the resulting entities, (EntA and EntB) will have the same value for Attr1. EntA and EntB then travel independently through their respective processing steps, denoted by the ellipses. Finally, EntA and EntB arrive at Loc10A and Loc10B respectively, where each piece must wait for its matching half to arrive before consolidating the entities with the JOIN construct.
Process Table
Entity |
Location |
Operation (min) |
---|---|---|
EntAB |
Loc1 |
INC Count Attr1= Count |
EntA |
Loc2 |
... |
EntA |
Loc10A |
MATCH Attr1 |
EntB |
Loc3 |
... |
EntB |
Loc10B |
MATCH Attr1 JOIN 1 EntA |
Routing Table
Blk |
Output |
Destination |
Rule |
Move Logic |
---|---|---|---|---|
1 |
EntA |
Loc2 |
FIRST 1 |
MOVE FOR 5 |
2 |
EntB |
Loc3 |
FIRST 1 |
MOVE FOR 5 |
... |
... |
... |
... |
... |
1 |
EntA |
Loc10B |
JOIN 1 |
MOVE FOR 30 sec |
... |
... |
... |
... |
... |
1 |
EntAB |
Loc11 |
FIRST 1 |
MOVE FOR 5 |
WAIT...UNTIL and LOAD.